package com.dagger.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class LocalStringUtils {

	/**
	 * 判断一个字符串是否有汉字
	 * @param str
	 * @return
	 */
    public static boolean haveChinese(String str) {
		String regex = "[\u4e00-\u9fa5]";
		Pattern pattern = Pattern.compile(regex);
		Matcher match = pattern.matcher(str);
		return match.find();
    }
    
    public static final String enterNewline = String.valueOf((char) 13)
			+ String.valueOf((char) 10); // windows下的换行符

	public static final String enterNewline_linux = String.valueOf((char) 10); // linux下的换行符
	
	/**
	 * null 转换为空字符串<br>
	 * 
	 * @param temp
	 *            需要转换的字符串
	 * @return String
	 */
	public static String nullToStr(String temp) {
		if (temp == null)
			temp = "";
		return temp;
	}
	
	/**
	 * 获取最大长度的异常信息
	 * @param e
	 * @param maxLength
	 * @return
	 */
	public static String getString(String str,int maxLength){
		
		if(LocalBeanUtils.isEmpty(str) || maxLength==0){
			return "";
		}
		
		char[] cAry = str.toCharArray();
		int msgLength=0;
		for(int i=0;i<cAry.length;i++){
			msgLength++;
			if(!isLetter(cAry[i])){
				msgLength+=2;//oracle 一个汉字长度为3
			}
			if(msgLength==maxLength){
				return str.substring(0,i+1);
			}
			if(msgLength>maxLength){
				return str.substring(0,i);
			}
		}
		return str;
	}
	
	public static boolean isLetter(char c) {   
		int k = 0x80;   
		return c / k == 0 ? true : false;   
	}
	
	/**
	 * 
	 * @Title: isEqual
	 * @Description: 比较两个对象是否相等
	 * @param @param obj1
	 * @param @param obj2
	 * @param @param fields
	 * @param @return    设定文件
	 * @return boolean    返回类型
	 * @throw
	 */
	public static boolean isEqual(String str1,String str2) {
		if(str1 == null && str2 == null) {
			return true;
		}
		
		if(str1 == null || str2 == null) {
			return false;
		}
		return str1.equals(str2);
	}
	
	public static String getFirstUpString(String str) {
		String first = str.substring(0,1).toUpperCase();
		
		if(str.length()>1) {
			return first+str.substring(1);
		}else {
			return first;
		}
	}	
}
